package com.model.composite;

import java.io.Serializable;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;

import com.type.TipoTelefonoEnum;

/**
 * @author Pablo
 * 
 *         Se colocan tres telefonos distintos y no en una lista ya que un
 *         objeto embebido no puede tener listas. Esta decisión tiene que ver
 *         con poder hacer un componente para el Manejo de contactos.
 * 
 */
@SuppressWarnings("serial")
@Embeddable
public class Contacto implements Serializable {

	@Column(length = 50, nullable = false)
	private String nombre;

	@Column(length = 30, nullable = true)
	private String apellido;

	@Column(length = 30, nullable = false)
	private String mail;

	@Basic
	private Boolean notificar;

	@Column(length = 30, nullable = true)
	private String telefonoPrincipal;

	@Enumerated(EnumType.STRING)
	private TipoTelefonoEnum tipoTelefonoPricipal;

	@Column(length = 30, nullable = true)
	private String telefonoSecundario;

	@Enumerated(EnumType.STRING)
	private TipoTelefonoEnum tipoTelefonoSecundario;

	@Column(length = 30, nullable = true)
	private String telefonoOtro;

	@Enumerated(EnumType.STRING)
	private TipoTelefonoEnum tipoTelefonoOtro;

	public Contacto() {
		this(null, null, null, Boolean.FALSE, null, null, null, null, null,
				null);
	}

	public Contacto(String nombre, String apellido, String mail,
			Boolean notificar, String telefonoPrincipal,
			TipoTelefonoEnum tipoTelefonoPricipal, String telefonoSecundario,
			TipoTelefonoEnum tipoTelefonoSecundario, String telefonoOtro,
			TipoTelefonoEnum tipoTelefonoOtro) {
		super();
		this.nombre = nombre;
		this.apellido = apellido;
		this.mail = mail;
		this.notificar = notificar;
		this.telefonoPrincipal = telefonoPrincipal;
		this.tipoTelefonoPricipal = tipoTelefonoPricipal;
		this.telefonoSecundario = telefonoSecundario;
		this.tipoTelefonoSecundario = tipoTelefonoSecundario;
		this.telefonoOtro = telefonoOtro;
		this.tipoTelefonoOtro = tipoTelefonoOtro;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) {
		this.apellido = apellido;
	}

	public String getMail() {
		return mail;
	}

	public void setMail(String mail) {
		this.mail = mail;
	}

	public Boolean getNotificar() {
		return notificar;
	}

	public void setNotificar(Boolean notificar) {
		this.notificar = notificar;
	}

	public String getTelefonoPrincipal() {
		return telefonoPrincipal;
	}

	public void setTelefonoPrincipal(String telefonoPrincipal) {
		this.telefonoPrincipal = telefonoPrincipal;
	}

	public TipoTelefonoEnum getTipoTelefonoPricipal() {
		return tipoTelefonoPricipal;
	}

	public void setTipoTelefonoPricipal(TipoTelefonoEnum tipoTelefonoPricipal) {
		this.tipoTelefonoPricipal = tipoTelefonoPricipal;
	}

	public String getTelefonoSecundario() {
		return telefonoSecundario;
	}

	public void setTelefonoSecundario(String telefonoSecundario) {
		this.telefonoSecundario = telefonoSecundario;
	}

	public TipoTelefonoEnum getTipoTelefonoSecundario() {
		return tipoTelefonoSecundario;
	}

	public void setTipoTelefonoSecundario(
			TipoTelefonoEnum tipoTelefonoSecundario) {
		this.tipoTelefonoSecundario = tipoTelefonoSecundario;
	}

	public String getTelefonoOtro() {
		return telefonoOtro;
	}

	public void setTelefonoOtro(String telefonoOtro) {
		this.telefonoOtro = telefonoOtro;
	}

	public TipoTelefonoEnum getTipoTelefonoOtro() {
		return tipoTelefonoOtro;
	}

	public void setTipoTelefonoOtro(TipoTelefonoEnum tipoTelefonoOtro) {
		this.tipoTelefonoOtro = tipoTelefonoOtro;
	}

}
